package com.yungu.swift.assets.driver.dao;

import com.yungu.swift.assets.driver.model.dto.CarDto;
import com.yungu.swift.assets.driver.model.vo.CarExportVo;
import com.yungu.swift.base.mapper.IMapper;

import java.util.List;
import java.util.Map;

/**
 * CarMapper数据库操作接口类
 **/

public interface CarMapper extends IMapper<CarDto> {
    /**
     * 查询车辆和类型
     *
     * @param map Map
     * @return List<CarDto>
     */
    List<CarDto> listExtend(Map<String, Object> map);

    /**
     * 获取车辆实体
     *
     * @param carParamsMap Map
     * @return CarDto
     */
    CarDto get(Map<String, Object> carParamsMap);

    /**
     * 后台-获取app/区域代理/公司下的车辆总数
     *
     * @param params Map
     * @return int
     */
    int getCarCount(Map<String, Object> params);

    /**
     * 更新实体
     *
     * @param carDto CarDto
     * @return int
     */
    int update(CarDto carDto);

    /**
     * 导出时调用的方法
     *
     * @param map Map
     * @return List<CarExportVo>
     */
    List<CarExportVo> listExport(Map<String, Object> map);

    /**
     * 批量添加
     *
     * @param carDtoList List<CarDto>
     * @return int
     */
    int addBatch(List<CarDto> carDtoList);

    /**
     * 批量更新
     *
     * @param carDtoList List<CarDto>
     * @return int
     */
    int updateBatch(List<CarDto> carDtoList);

    /**
     * 查询车辆关联的司机信息
     *
     * @param params Map
     * @return List<Map < String, String>>
     */
    List<Map<String, String>> getDriInfo(Map params);

    /**
     * 车牌号模糊检索
     *
     * @param map
     * @return
     */
    List<CarDto> plateNumSearch(Map<String, Object> map);
}